package com.yadang.JsonDeserializer;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;

/**
 * @author: 亚当
 * @date: 2023年04月01日 16:36
 * @package: com.yadang.JsonDeserializer
 * @Description: TODO
 */
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonRootName;
import java.util.List;

@JsonRootName("Record")
public class Record {
    @JsonProperty("BIZ_DATE")
    private String bizDate;

    @JsonProperty("BOND_ACCT")
    private String bondAcct;

    @JsonProperty("BOND_ACCT_NAME_ABBR")
    private String bondAcctNameAbbr;

    @JsonProperty("BOND_CODE")
    private String bondCode;

    @JsonProperty("BOND_NAME_ABBR")
    private String bondNameAbbr;

    @JsonProperty("DENOMINATED_CURRENCY_DESC")
    private String denomiatedCurrencyDesc;

    @JsonProperty("SUBJ_SET")
    private SubjSet subjSet;

    public String getBizDate() {
        return bizDate;
    }

    public void setBizDate(String bizDate) {
        this.bizDate = bizDate;
    }

    public String getBondAcct() {
        return bondAcct;
    }

    public void setBondAcct(String bondAcct) {
        this.bondAcct = bondAcct;
    }

    public String getBondAcctNameAbbr() {
        return bondAcctNameAbbr;
    }

    public void setBondAcctNameAbbr(String bondAcctNameAbbr) {
        this.bondAcctNameAbbr = bondAcctNameAbbr;
    }

    public String getBondCode() {
        return bondCode;
    }

    public void setBondCode(String bondCode) {
        this.bondCode = bondCode;
    }

    public String getBondNameAbbr() {
        return bondNameAbbr;
    }

    public void setBondNameAbbr(String bondNameAbbr) {
        this.bondNameAbbr = bondNameAbbr;
    }

    public String getDenomiatedCurrencyDesc() {
        return denomiatedCurrencyDesc;
    }

    public void setDenomiatedCurrencyDesc(String denomiatedCurrencyDesc) {
        this.denomiatedCurrencyDesc = denomiatedCurrencyDesc;
    }

    public SubjSet getSubjSet() {
        return subjSet;
    }

    public void setSubjSet(SubjSet subjSet) {
        this.subjSet = subjSet;
    }

    public String toString() {
        return "Record [bizDate=" + bizDate + ", bondAcct=" + bondAcct + ", bondAcctNameAbbr=" + bondAcctNameAbbr
                + ", bondCode=" + bondCode + ", bondNameAbbr=" + bondNameAbbr + ", denomiatedCurrencyDesc="
                + denomiatedCurrencyDesc + ", subjSet=" + subjSet + "]";
    }

    public static class SubjSet {
        @JsonAlias({"BOND_SUBJ_NAME"})
        private List<String> bondSubjName;

        @JsonAlias({"SUBJ_FACE_AMNT"})
        private List<String> subjFaceAmount;

        @JsonAlias({"SUBJ_BAL_UNIT_DESC"})
        private List<String> subjBalUnitDesc;

        public List<String> getBondSubjName() {
            return bondSubjName;
        }

        public void setBondSubjName(List<String> bondSubjName) {
            this.bondSubjName = bondSubjName;
        }

        public List<String> getSubjFaceAmount() {
            return subjFaceAmount;
        }

        public void setSubjFaceAmount(List<String> subjFaceAmount) {
            this.subjFaceAmount = subjFaceAmount;
        }

        public List<String> getSubjBalUnitDesc() {
            return subjBalUnitDesc;
        }

        public void setSubjBalUnitDesc(List<String> subjBalUnitDesc) {
            this.subjBalUnitDesc = subjBalUnitDesc;
        }

        public String toString() {
            return "SubjSet [bondSubjName=" + bondSubjName + ", subjFaceAmount=" + subjFaceAmount
                    + ", subjBalUnitDesc=" + subjBalUnitDesc + "]";
        }
    }
}
